package cc.rengu.igas.bomp.facade;

import cc.rengu.igas.bomp.facade.request.*;
import cc.rengu.igas.bomp.facade.response.*;
import cc.rengu.igas.bomp.facade.result.Result;

/**
 * @author: zhangxuran
 * @Date: 2020/4/23 17:58
 * ription: Bomp查询类交易
 */

public interface BompPublicQueryService {
    /**
     * 拓展经理列表查询
     *
     * @param request 请求
     * @return 拓展经理列表
     */
    Result<ManagerInfoListQueryResponse> managerInfoListQuery(ManagerInfoListQueryRequest request);

    /**
     * 行政区划代码查询
     *
     * @param request 请求
     * @return 行政区划代码
     */
    Result<RegionInfoQueryResponse> regionInfoQuery(RegionInfoQueryRequest request);

    /**
     * 行业组别查询
     *
     * @param request 请求
     * @return 行业组别
     */
    Result<IndustryGroupInfoQueryResponse> industryGroupInfoQuery(IndustryGroupInfoQueryRequest request);

    /**
     * 行业映射关系信息查询
     *
     * @param request 请求
     * @return 响应
     */
    Result<IndustryMapInfoQueryResponse> industryMapInfoQuery(IndustryMapInfoQueryRequest request);

    /**
     * 支付通道列表查询
     *
     * @param request 请求
     * @return Result<ChannelInfoListQueryResponse> 支付通道列表
     */
    Result<ChannelInfoListQueryResponse> channelInfoListQuery(ChannelInfoListQueryRequest request);

    /**
     * 银联地区信息查询
     *
     * @param request 请求
     * @return Result<UnionAreaInfoQueryResponse> 银联地区信息
     */
    Result<UnionAreaInfoQueryResponse> unionAreaInfoQuery(UnionAreaInfoQueryRequest request);

    /**
     * MCC信息查询
     *
     * @param request 请求
     * @return Result<IndustryInfoQueryResponse> MCC信息
     */
    Result<IndustryInfoQueryResponse> industryInfoQuery(IndustryInfoQueryRequest request);

    /**
     * 费率模板列表查询
     *
     * @param request 请求
     * @return Result<FeeTemplateListQueryResponse> 费率模板列表
     */
    Result<FeeTemplateListQueryResponse> feeTemplateListQuery(FeeTemplateListQueryRequest request);

    /**
     * 机构信息列表查询
     *
     * @param request 请求
     * @return Result<OrgInfoListQueryResponse> 机构信息列表
     */
    Result<OrgInfoListQueryResponse> orgInfoListQuery(OrgInfoListQueryRequest request);

    /**
     * 基本产品信息列表查询
     *
     * @param request 请求
     * @return Result<BaseProdInfoListQueryResponse> 基本产品信息列表
     */
    Result<BaseProdInfoListQueryResponse> baseProdInfoListQuery(BaseProdInfoListQueryRequest request);

    /**
     * 产品详细信息查询
     *
     * @param request 请求
     * @return Result<ProdInfoQueryResponse> 产品详细信息
     */
    Result<ProdInfoQueryResponse> prodInfoQuery(ProdInfoQueryRequest request);

    /**
     * 标准产品信息列表查询
     *
     * @param request 请求
     * @return Result<BaseProdInfoListQueryResponse> 标准产品信息列表
     */
    Result<ProdInfoListQueryResponse> prodInfoListQuery(ProdInfoListQueryRequest request);

    /**
     * 人行行号查询
     *
     * @param request 请求
     * @return 人行联行行号信息
     */
    Result<BankNameCodeQueryResponse> bankNameCodeQuery(BankNameCodeQueryRequest request);

    /**
     * 通道限额配置信息
     *
     * @param request 请求
     * @return 通道限额配置信息
     */
    Result<ChannelLimitCfgQueryResponse> channelLimitCfgQuery(ChannelLimitCfgQueryRequest request);

    /**
     * 营销广告信息查询
     *
     * @param request 请求
     * @return 营销广告配置信息
     */
    Result<MarketingAdsInfoQueryResponse> marketingAdsInfoQuery(MarketingAdsInfoQueryRequest request);

    /**
     * EMV参数信息查询
     *
     * @param request 请求
     * @return EMV参数配置信息
     */
    Result<EmvParamInfoQueryResponse> emvParamInfoQuery(EmvParamInfoQueryRequest request);
}
